/*
 * <summary></summary>
 * <author>He Han</author>
 * <email>hankcs.cn@gmail.com</email>
 * <create-date>2014/12/7 19:13</create-date>
 *
 * <copyright file="DemoNLPSegment.java" company="上海林原信息科技有限公司">
 * Copyright (c) 2003-2014, 上海林原信息科技有限公司. All Right Reserved, http://www.linrunsoft.com/
 * This source is subject to the LinrunSpace License. Please contact 上海林原信息科技有限公司 to get more information.
 * </copyright>
 */
package com.hankcs.demo;

import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.corpus.document.sentence.Sentence;
import com.hankcs.hanlp.corpus.document.sentence.word.IWord;
import com.hankcs.hanlp.dictionary.CustomDictionary;
import com.hankcs.hanlp.tokenizer.NLPTokenizer;
import com.hankcs.hanlp.utility.TestUtility;

import java.util.List;

/**
 * NLP分词，更精准的中文分词、词性标注与命名实体识别。
 * 语料库规模决定实际效果，面向生产环境的语料库应当在千万字量级。欢迎用户在自己的语料上训练新模型以适应新领域、识别新的命名实体。
 * 标注集请查阅 https://github.com/hankcs/HanLP/blob/master/data/dictionary/other/TagPKU98.csv
 * 或者干脆调用 Sentence#translateLabels() 转为中文
 *
 * @author hankcs
 */
public class DemoNLPSegment extends TestUtility {
    public static void main(String[] args) {
//        CustomDictionary.add("近三年及一期");
//        CustomDictionary.add("近三年及一期末");
//        CustomDictionary.add("有息负债");
//        CustomDictionary.add("未分配利润");
//        CustomDictionary.add("发电设备平均利用小时数");
//        CustomDictionary.add("利用小时数");
//        CustomDictionary.add("为");
//        CustomDictionary.add("及");
//        CustomDictionary.add("和");
//        CustomDictionary.add("存货");
//        CustomDictionary.add("其他应收款");
//        CustomDictionary.add("货币资金");
//        CustomDictionary.add("投资活动产生的现金流出量");
//        CustomDictionary.add("经营活动产生的现金净流量");
//        CustomDictionary.add("副总经理");
//        CustomDictionary.add("负债总额");
//        CustomDictionary.add("对外担保余额");
//        CustomDictionary.add("旅客运输总量");
//        CustomDictionary.add("产能利用率");
        CustomDictionary.add("已在中国银行间市场交易商协会注册");



        NLPTokenizer.ANALYZER.enableCustomDictionaryForcing(true);
        NLPTokenizer.ANALYZER.enableNumberQuantifierRecognize(true);
//        System.out.println(HanLP.extractPhrase("2015 年至 2017 年以及 2018 年 1-3 月，公司经营活动产生的现金净流量分别 为 86,277 万元、-255,690 万元、-24,043 万元和 42,139 万元，，公司经营活动现 金流量净额波动较大。本公司长期以来经营稳健、财务结构稳定、无不良信用记 录，同时也注意负债期限结构管理和现金管理。截至 2017 年末，发行人资产负 债率为 63.97%，流动比率为 2.09，速动比率为 1.14。发行人负债以流动负债为 主，截至 2017 年末，发行人流动负债总额为 104.31 亿元，占年末负债总额的 60.32%。若未来公司的经营环境发生重大不利变化，负债水平不能保持在合理的 范围内，可能为发行人债券偿付带来一定的风险", 2));

        System.out.println(NLPTokenizer.analyze("本公司发行本中期票据已在中国银行间市场交易商协会注册，注 册不代表交易商协会对本期中期票据的投资价值作出任何评价，也不 代表对本期中期票据的投资风险作出任何判断。投资者购买本公司发 行的本期中期票据，应当认真阅读本募集说明书及有关的信息披露文 件，对信息披露的真实性、准确性和完整性、及时性进行独立分析， 并据以独立判断投资价值，自行承担与其有关的任何投资风险"));

//        System.out.println(NLPTokenizer.ANALYZER.seg2sentence("本公司发行本中期票据已在中国银行间市场交易商协会注册，注 册不代表交易商协会对本期中期票据的投资价值作出任何评价，也不 代表对本期中期票据的投资风险作出任何判断。投资者购买本公司发 行的本期中期票据，应当认真阅读本募集说明书及有关的信息披露文 件，对信息披露的真实性、准确性和完整性、及时性进行独立分析， 并据以独立判断投资价值，自行承担与其有关的任何投资风险"));
//        NLPTokenizer.ANALYZER.enableCustomDictionary(false); // 中文分词≠词典，不用词典照样分词。
//        System.out.println(NLPTokenizer.segment("我新造一个词叫幻想乡你能识别并正确标注词性吗？")); // “正确”是副形词。
//        System.out.println(NLPTokenizer.seg2sentence("2015-2017 年末和 2018 年 3 月末，其他应收款分别为 34.45 亿元、34.55 亿元、24.95 亿元和 26.67 亿元"));
//        System.out.println(NLPTokenizer.segment("近三年及一期，发行人未分配利润分别为111228.57 亿元、42.57 亿元、49.48 亿 元及 50.47 亿元")); // “正确”是副形词。
//        System.out.println(NLPTokenizer.segment("截至 2015 年 12 月 31 日、2016 年 12 月 31 日、2017 年 12 月 31 日和 2018 年 3 月 31 日，发行人未分配利润期末余额分别为 188.46 亿元、209.80 亿元、 227.58 亿元和 223.98 亿元")); // “正确”是副形词。
//        Sentence sentence = NLPTokenizer.analyze("近三年及一期，发行人未分配利润分别为 28.57 亿元、42.57 亿元、49.48 亿 元及 50.47 亿元，占所有者权益的比重为 30.63%、47.12%、50.79%及 51.23%， 占比较大。所有者权益结构存在不稳定风险，如果发行人未来向股东分红，将对 发行人所有者权益产生较大影响，可能进一步影响公司偿债能力");
//        System.out.println(NLPTokenizer.segment("董事会由九名董事组成"));
//        Sentence sentence = NLPTokenizer.analyze("截至 2018 年 3 月末，发行人本部共计对外担保余额 151700 万元，其中对 下属子公司担保余额为 25,400 万元。发行人合并口径对外担保 126,300 万元");
//        Sentence sentence = NLPTokenizer.analyze("钢材产量 分别为 2,379 万吨、2,302 万吨、2,235 万吨，粗钢产量位居全国第七".replaceAll("\\s",""));
//        List<IWord> wordList =  sentence.wordList;
//        for(IWord iWord:wordList){
//            System.out.println(iWord.getLabel()+"="+iWord.getValue());
//        }

//        System.out.println(NLPTokenizer.analyze("近三年及一期，公司一年内到期有息负债为 10.77 亿元、7.55 亿元、22.6 亿 元及 18.9 亿元"));
//        System.out.println(NLPTokenizer.segment("2015 年至 2017 年以及 2018 年 1-3 月，公司经营活动产生的现金净流量分别 为 86,277 万元、-255,690 万元、-24,043 万元和 42,139 万元，，公司经营活动现 金流量净额波动较大。本公司长期以来经营稳健、财务结构稳定、无不良信用记 录，同时也注意负债期限结构管理和现金管理。截至 2017 年末，发行人资产负 债率为 63.97%，流动比率为 2.09，速动比率为 1.14。发行人负债以流动负债为 主，截至 2017 年末，发行人流动负债总额为 104.31 亿元，占年末负债总额的 60.32%。若未来公司的经营环境发生重大不利变化，负债水平不能保持在合理的 范围内，可能为发行人债券偿付带来一定的风险")); // “正确”是副形词。
        // 注意观察下面两个“希望”的词性、两个“晚霞”的词性
//        System.out.println(NLPTokenizer.analyze("我的希望是希望张晚霞的背影被晚霞映红").translateLabels());
//        System.out.println(NLPTokenizer.analyze("支援臺灣正體香港繁體：微软公司於1975年由比爾·蓋茲和保羅·艾倫創立。"));
    }
}
